Duane Churms
https://2017.za.pycon.org/talks/40/
We implemented an interface between a TR069 Auto Configuration Server (ACS)
and an ISP's billing system. This system ensures consistency between data on
the billing system and over 2000 CPEs (Customer Premises Equipment) in the
field. It prevents fraud by ensuring that credentials are only used on the
devices for which they are intended. Django was used to present an API to the
billing system, which can provision credentials for each CPE or deprovision a
CPE. Celery is used to perform asynchronous communication with the ACS, which
can take several seconds per call.
We encountered several challenges during this project, such as TR069 parameter
locations being inconsistent across CPE models and firmware versions. A mapping
system had to be implemented to allow all device models to be managed. This
talk covers the challenges we faced and the approach we used to overcome these
challenges.